#!/usr/bin/python3
# -*- coding:utf-8 -*-
import os
import numpy as np


def gen_golden_data_simple():
    np.random.seed(42)  # 固定随机种子确保可重复性
    dtype = np.float16
    output_shape = [100, 100]

    # 调整数据范围避免极端值
    input_data = np.random.uniform(0.5, 2.0, output_shape).astype(dtype)
    input_x1 = np.random.uniform(0.5, 2.0, output_shape).astype(dtype)

    # 确保分母不为零且避免极小值
    input_x2 = np.random.uniform(0.5, 2.0, output_shape).astype(dtype)
    input_x2 = np.where(np.abs(input_x2) < 0.1, 0.5, input_x2)  # 替换过小的值

    input_value = np.array([1.2], dtype=dtype)

    # 使用更高精度的中间计算
    golden = (input_data.astype(np.float32) +
              input_x1.astype(np.float32) / input_x2.astype(np.float32) *
              input_value.astype(np.float32)).astype(dtype)

    os.makedirs("input", exist_ok=True)
    os.makedirs("output", exist_ok=True)

    input_data.tofile("./input/input_data.bin")
    input_x1.tofile("./input/input_x1.bin")
    input_x2.tofile("./input/input_x2.bin")
    input_value.tofile("./input/input_value.bin")
    golden.tofile("./output/golden.bin")


if __name__ == "__main__":
    gen_golden_data_simple()